import { Message, MessageBox } from 'element-ui';
import i18n from '@/lang';

// 组件封装

/**
 * 表格 + 弹窗确认
 *
 * @param {Object} data
 */
/*
  删除按钮样式：
    cancelButtonClass: 'delete-btn',
    confirmButtonClass: 'delete-btn delete-confiem-btn',
  多行内容：
    const h = this.$createElement;
    const node = h('p', null, [
      h('span', null, '内容可以是 '),
      h('i', { style: 'color: teal' }, 'VNode')
    ])
    data = { h: node }
*/
export function confirmDialog(data) {
  const {
    h, // 自定义内容
    dialogContent, // 内容文本
    dialogTitle, // 标题文本
    dialogConfirmBtn, // 确定按钮文本
    dialogCancelBtn, // 取消按钮文本
    rowId, // 当前行数据
    successMsg, // 成功提示
    cancelButtonClass, // 取消按钮样式
    confirmButtonClass, // 确定按钮样式
    fn, // 调用api函数
    updataTableData, // 更新tableData函数
    callBack // 回调函数
  } = data;
  MessageBox.confirm(
    i18n.t(dialogContent),
    i18n.t(dialogTitle),
    {
      message: h,
      confirmButtonText: i18n.t(dialogConfirmBtn),
      cancelButtonText: i18n.t(dialogCancelBtn),
      cancelButtonClass,
      confirmButtonClass
    }
  )
    .then(() => {
      // 删除后的回调函数
      fn && fn(rowId).then(() => {
        Message({
          showClose: true,
          type: 'success',
          message: i18n.t(successMsg)
        });
        updataTableData();
      });
      // 回调函数
      callBack && callBack();
    })
    .catch((err) => {
      console.log(err);
    });
}
